<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // var name='小王',age=17;
    // var obj={
    //     name:'小张',
    //     objAge:this.age,
    //     myFun:function(){
    //         console.log(this.name+'年龄'+this.age);
    //     }
    // }
    // console.log(obj.objAge);  // 17
    // obj.myFun()


    // function fn(x,y){
    //     console.log(this);
    //     console.log(x+y)
    // }
    // var stu = {
    //     name:'dys'
    // }
    // // fn(1,2)
    // // 对象冒充，（冒充谁（指向谁））
    // fn.call(stu,1,2);
    // // stu.fn = fn;
    // console.log(stu)



    // var happy = ['何炅','谢娜','杜海涛'];
    // happy.forEach(function(value,index,arry){
    //     console.log(value);  // 元素
    //     console.log(index);  // 索引
    //     console.log(arry)    // 数组
    // });



    // foreach 
    // var stu = [{name:'wy',age:57},{name:'dys',age:47},{name:'dgq',age:27}];
    // stu.forEach(function(value,index,arry){
    //     if(value.age>17){
    //         console.log('中国好声音');
    //         return; 
    //     }
    //     console.log("姓名："+value.name+',年龄：'+value.age)
    // })

    // 过滤
    // var nums = [45,74,27,100];
    // var newNum = nums.filter(function(value,index,arry){  // 返回值是一个新数组
    //     return value>70
    // })
    // console.log(newNum)
    // var sNum = nums.some(function(value,index,arry){  // 返回值是boolean，有则返回true（后面不在执行），没有返回false
    //     console.log(value);
    //     return value>70
    // })
    // console.log(sNum)

    // var my = [];
    // var ifNum = nums.forEach(function(value,index,arry){
    //     if(value>70){
    //         my.push(value)
    //     }
    // })
    // console.log(my);

    // var str = ' d      ys            ';
    // console.log(str.trim())



    var obj = {
        name:'马大姐',
        age:17,
        id:'1110',
        family:'马大哈'
    };
    // 获取到所有的键
    console.log(Object.keys(obj));
    // 获取值
    console.log(Object.values(obj))
    Object.defineProperty(obj,'name',{
        value:'马尔街',
        writable: false, // 是否可以修改这个属性的值
        enumerable:false, // 不可被遍历
    })
    obj.name = '马大哥';
    console.log(Object.keys(obj));
    for(var k in obj){
        console.log(k)
    }


    // var obj = {
    //     id: 1,
    //     pname: '小米',
    //     price: 1999
    // };
    // // 1. 以前的对象添加和修改属性的方式
    // // obj.num = 1000;
    // // obj.price = 99;
    // // console.log(obj);
    // // 2. Object.defineProperty() 定义新属性或修改原有的属性
    // Object.defineProperty(obj, 'num', {
    //     value: 1000,
    //     enumerable: true
    // });
    // console.log(obj);
    
</script>
</html>